package com.itany.corejava.code14_lambda;

import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Supplier;

/**
 * @author 石小俊
 * @date 2023年05月30日 17:05
 */
public class Test07_构造方法引用 {
    public static void main(String[] args) {
        // 调用无参构造方法
        // User user = new User();
        Supplier<User> s = User::new;
        User user = s.get();
        System.out.println(user);

        // 调用一个参数的构造方法
        // User user2 = new User("admin");
        Function<String, User> f = User::new;
        User user2 = f.apply("admin");
        System.out.println(user2);

        // 调用两个参数的构造方法
        // User user3 = new User("admin","123456");
        BiFunction<String, String, User> bf = User::new;
        User user3 = bf.apply("admin", "123456");
        System.out.println(user3);

        // 内置的函数式接口中最多只能调用两个参数的构造方法,没有超出两个参数的函数式接口
        // 但是你可以自定义
    }

}